<template>
    <view>
        <!-- 地址 -->
        <navigator url="/pages/address/address?source=1" class="address-section">
            <view class="order-content">
                <text class="yticon icon-shouhuodizhi"></text>
                <view class="cen">
                    <view class="top">
                        <text class="name">{{ addressData.name }}</text>
                        <text class="mobile">{{ addressData.mobile }}</text>
                    </view>
                    <text class="address">{{ addressData.address }} {{ addressData.area }}</text>
                </view>
                <text class="yticon icon-you"></text>
            </view>

            <image
                class="a-bg"
                src=""
            ></image>
        </navigator>

        <view class="goods-section">
            <view class="g-header b-b">
                <image class="logo" src="http://duoduo.qibukj.cn/./Upload/Images/20240321/202403211727515.png"></image>
                <text class="name">西城小店铺</text>
            </view>
            <!-- 商品列表 -->
            <view class="g-item">
                <image src="https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=756705744,3505936868&fm=11&gp=0.jpg"></image>
                <view class="right">
                    <text class="title clamp">古黛妃 短袖t恤女夏装2024新款</text>
                    <text class="spec">春装款 L</text>
                    <view class="price-box">
                        <text class="price">￥17.8</text>
                        <text class="number">x 1</text>
                    </view>
                </view>
            </view>
            <view class="g-item">
                <image src="https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1620020012,789258862&fm=26&gp=0.jpg"></image>
                <view class="right">
                    <text class="title clamp">韩版于是洞洞拖鞋 夏季浴室防滑简约居家【新人专享，限选意见】</text>
                    <text class="spec">春装款 L</text>
                    <view class="price-box">
                        <text class="price">￥17.8</text>
                        <text class="number">x 1</text>
                    </view>
                </view>
            </view>
        </view>

        <!-- 优惠明细 -->
        <view class="yt-list">
            <view class="yt-list-cell b-b" @click="toggleMask('show')">
                <view class="cell-icon">券</view>
                <text class="cell-tit clamp">优惠券</text>
                <text class="cell-tip active">选择优惠券</text>
                <text class="cell-more wanjia wanjia-gengduo-d"></text>
            </view>
            <view class="yt-list-cell b-b">
                <view class="cell-icon hb">减</view>
                <text class="cell-tit clamp">商家促销</text>
                <text class="cell-tip disabled">暂无可用优惠</text>
            </view>
        </view>

        <!-- 金额明细 -->
        <view class="yt-list">
            <view class="yt-list-cell b-b">
                <text class="cell-tit clamp">商品金额</text>
                <text class="cell-tip">￥179.88</text>
            </view>
            <view class="yt-list-cell b-b">
                <text class="cell-tit clamp">优惠金额</text>
                <text class="cell-tip red">-￥35</text>
            </view>
            <view class="yt-list-cell b-b">
                <text class="cell-tit clamp">运费</text>
                <text class="cell-tip">免运费</text>
            </view>
            <view class="yt-list-cell desc-cell">
                <text class="cell-tit clamp">备注</text>
                <input class="desc" type="text" v-model="desc" placeholder="请填写备注信息" placeholder-class="placeholder" />
            </view>
        </view>

        <!-- 底部 -->
        <view class="footer">
            <view class="price-content">
                <text>实付款</text>
                <text class="price-tip">￥</text>
                <text class="price">475</text>
            </view>
            <text class="submit" @click="submit">提交订单</text>
        </view>

        <!-- 优惠券面板 -->
        <view class="mask" :class="maskState === 0 ? 'none' : maskState === 1 ? 'show' : ''" @click="toggleMask">
            <view class="mask-content" @click.stop.prevent="stopPrevent">
                <!-- 优惠券页面，仿mt -->
                <view class="coupon-item" v-for="(item, index) in couponList" :key="index">
                    <view class="con">
                        <view class="left">
                            <text class="title">{{ item.title }}</text>
                            <text class="time">有效期至2024-06-30</text>
                        </view>
                        <view class="right">
                            <text class="price">{{ item.price }}</text>
                            <text>满30可用</text>
                        </view>

                        <view class="circle l"></view>
                        <view class="circle r"></view>
                    </view>
                    <text class="tips">限新用户使用</text>
                </view>
            </view>
        </view>
    </view>
</template>

<script setup>
const maskState = ref(0); //优惠券面板显示状态
const desc = ref(''); //备注
const payType = ref(1); //1微信 2支付宝

const couponList = ref([
    {
        title: '新用户专享优惠券',
        price: 5
    },
    {
        title: '庆五一发一波优惠券',
        price: 10
    },
    {
        title: '优惠券优惠券优惠券优惠券',
        price: 15
    }
]);
const addressData = ref({
    name: '张三',
    mobile: '13853989563',
    addressName: '金九大道',
    address: '山东省济南市历城区',
    area: '149号',
    default: false
});

//显示优惠券面板
const toggleMask = (type) => {
    let timer = type === 'show' ? 10 : 300;
    let state = type === 'show' ? 1 : 0;
    maskState.value = 2;
    setTimeout(() => {
        maskState.value = state;
    }, timer);
};
const numberChange = (data) => {
    number.value = data.number;
};
const changePayType = (type) => {
    payType.value = type;
};
const submit = () => {
    uni.redirectTo({
        url: '/pages/pay/pay'
    });
};
function stopPrevent(){}
</script>

<style lang="scss">
page {
    background: $page-color-base;
    padding-bottom: 100rpx;
}

.address-section {
    padding: 30rpx 0;
    background: #fff;
    position: relative;

    .order-content {
        display: flex;
        align-items: center;
    }

    .icon-shouhuodizhi {
        flex-shrink: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 90rpx;
        color: #888;
        font-size: 44rpx;
    }

    .cen {
        display: flex;
        flex-direction: column;
        flex: 1;
        font-size: 28rpx;
        color: $font-color-dark;
    }

    .name {
        font-size: 34rpx;
        margin-right: 24rpx;
    }

    .address {
        margin-top: 16rpx;
        margin-right: 20rpx;
        color: $font-color-light;
    }

    .icon-you {
        font-size: 32rpx;
        color: $font-color-light;
        margin-right: 30rpx;
    }

    .a-bg {
        position: absolute;
        left: 0;
        bottom: 0;
        display: block;
        width: 100%;
        height: 5rpx;
    }
}

.goods-section {
    margin-top: 16rpx;
    background: #fff;
    padding-bottom: 1px;

    .g-header {
        display: flex;
        align-items: center;
        height: 84rpx;
        padding: 0 30rpx;
        position: relative;
    }

    .logo {
        display: block;
        width: 50rpx;
        height: 50rpx;
        border-radius: 100px;
    }

    .name {
        font-size: 30rpx;
        color: $font-color-base;
        margin-left: 24rpx;
    }

    .g-item {
        display: flex;
        margin: 20rpx 30rpx;

        image {
            flex-shrink: 0;
            display: block;
            width: 140rpx;
            height: 140rpx;
            border-radius: 4rpx;
        }

        .right {
            flex: 1;
            padding-left: 24rpx;
            overflow: hidden;
        }

        .title {
            font-size: 30rpx;
            color: $font-color-dark;
        }

        .spec {
            font-size: 26rpx;
            color: $font-color-light;
        }

        .price-box {
            display: flex;
            align-items: center;
            font-size: 32rpx;
            color: $font-color-dark;
            padding-top: 10rpx;

            .price {
                margin-bottom: 4rpx;
            }
            .number {
                font-size: 26rpx;
                color: $font-color-base;
                margin-left: 20rpx;
            }
        }

        .step-box {
            position: relative;
        }
    }
}
.yt-list {
    margin-top: 16rpx;
    background: #fff;
}

.yt-list-cell {
    display: flex;
    align-items: center;
    padding: 10rpx 30rpx 10rpx 40rpx;
    line-height: 70rpx;
    position: relative;

    &.cell-hover {
        background: #fafafa;
    }

    &.b-b:after {
        left: 30rpx;
    }

    .cell-icon {
        height: 32rpx;
        width: 32rpx;
        font-size: 22rpx;
        color: #fff;
        text-align: center;
        line-height: 32rpx;
        background: #f85e52;
        border-radius: 4rpx;
        margin-right: 12rpx;

        &.hb {
            background: #ffaa0e;
        }

        &.lpk {
            background: #3ab54a;
        }
    }

    .cell-more {
        align-self: center;
        font-size: 24rpx;
        color: $font-color-light;
        margin-left: 8rpx;
        margin-right: -10rpx;
    }

    .cell-tit {
        flex: 1;
        font-size: 26rpx;
        color: $font-color-light;
        margin-right: 10rpx;
    }

    .cell-tip {
        font-size: 26rpx;
        color: $font-color-dark;

        &.disabled {
            color: $font-color-light;
        }

        &.active {
            color: $base-color;
        }
        &.red {
            color: $base-color;
        }
    }

    &.desc-cell {
        .cell-tit {
            max-width: 90rpx;
        }
    }

    .desc {
        flex: 1;
        font-size: $font-base;
        color: $font-color-dark;
    }
}

/* 支付列表 */
.pay-list {
    padding-left: 40rpx;
    margin-top: 16rpx;
    background: #fff;
    .pay-item {
        display: flex;
        align-items: center;
        padding-right: 20rpx;
        line-height: 1;
        height: 110rpx;
        position: relative;
    }
    .icon-weixinzhifu {
        width: 80rpx;
        font-size: 40rpx;
        color: #6bcc03;
    }
    .icon-alipay {
        width: 80rpx;
        font-size: 40rpx;
        color: #06b4fd;
    }
    .icon-xuanzhong2 {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 60rpx;
        height: 60rpx;
        font-size: 40rpx;
        color: $base-color;
    }
    .tit {
        font-size: 32rpx;
        color: $font-color-dark;
        flex: 1;
    }
}

.footer {
    position: fixed;
    left: 0;
    bottom: 0;
    z-index: 995;
    display: flex;
    align-items: center;
    width: 100%;
    height: 90rpx;
    justify-content: space-between;
    font-size: 30rpx;
    background-color: #fff;
    z-index: 998;
    color: $font-color-base;
    box-shadow: 0 -1px 5px rgba(0, 0, 0, 0.1);
    .price-content {
        padding-left: 30rpx;
    }
    .price-tip {
        color: $base-color;
        margin-left: 8rpx;
    }
    .price {
        font-size: 36rpx;
        color: $base-color;
    }
    .submit {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 280rpx;
        height: 100%;
        color: #fff;
        font-size: 32rpx;
        background-color: $base-color;
    }
}

/* 优惠券面板 */
.mask {
    display: flex;
    align-items: flex-end;
    position: fixed;
    left: 0;
    top: var(--window-top);
    bottom: 0;
    width: 100%;
    background: rgba(0, 0, 0, 0);
    z-index: 9995;
    transition: 0.3s;

    .mask-content {
        width: 100%;
        min-height: 30vh;
        max-height: 70vh;
        background: #f3f3f3;
        transform: translateY(100%);
        transition: 0.3s;
        overflow-y: scroll;
    }
    &.none {
        display: none;
    }
    &.show {
        background: rgba(0, 0, 0, 0.4);

        .mask-content {
            transform: translateY(0);
        }
    }
}

/* 优惠券列表 */
.coupon-item {
    display: flex;
    flex-direction: column;
    margin: 20rpx 24rpx;
    background: #fff;
    .con {
        display: flex;
        align-items: center;
        position: relative;
        height: 120rpx;
        padding: 0 30rpx;
        &:after {
            position: absolute;
            left: 0;
            bottom: 0;
            content: '';
            width: 100%;
            height: 0;
            border-bottom: 1px dashed #f3f3f3;
            transform: scaleY(50%);
        }
    }
    .left {
        display: flex;
        flex-direction: column;
        justify-content: center;
        flex: 1;
        overflow: hidden;
        height: 100rpx;
    }
    .title {
        font-size: 32rpx;
        color: $font-color-dark;
        margin-bottom: 10rpx;
    }
    .time {
        font-size: 24rpx;
        color: $font-color-light;
    }
    .right {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        font-size: 26rpx;
        color: $font-color-base;
        height: 100rpx;
    }
    .price {
        font-size: 44rpx;
        color: $base-color;
        &:before {
            content: '￥';
            font-size: 34rpx;
        }
    }
    .tips {
        font-size: 24rpx;
        color: $font-color-light;
        line-height: 60rpx;
        padding-left: 30rpx;
    }
    .circle {
        position: absolute;
        left: -6rpx;
        bottom: -10rpx;
        z-index: 10;
        width: 20rpx;
        height: 20rpx;
        background: #f3f3f3;
        border-radius: 100px;
        &.r {
            left: auto;
            right: -6rpx;
        }
    }
}
</style>
